翻訳と辞書
Words near each other
・ Single Carrot Theatre
・ Single cell
・ Single Cell Orchestra
・ Single Cell Orchestra (album)
・ Single cell sequencing
・ Single Center
・ Single Channel Architecture
・ Single channel per carrier
・ Single Channel Simulcast
・ Single Class Surface Combatant Project
・ Single coil guitar pickup
・ Single Collection (Hitomi Yaida album)
・ Single Collection (Jun Shibata album)
・ Single Collection/Yaiko's Selection
・ Single combat
Single Compilation Unit
・ Single Connector Attachment
・ Single context recording
・ Single Convention on Narcotic Drugs
・ Single crossing condition
・ Single crystal
・ Single customer view
・ Single Cuts
・ Single cycle processor
・ Single Dad in Love
・ Single density
・ Single deposit
・ Single desk
・ Single displacement reaction
・ Single document interface


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Single Compilation Unit : ウィキペディア英語版
Single Compilation Unit

Single Compilation Unit (SCU) is a computer programming technique for the C and C++ languages, which reduces serial compilation time and allows the compiler to perform certain program optimizations even when the compiler itself is lacking support for whole program optimization. The technique can be applied to an entire program or to some subset of source files; when applied to an entire program, it is also known as a unity build.
==Purpose==
In the C/C++ compilation model (formally "translation environment"), individual .c/.cpp source files are preprocessed into translation units, which are then translated (compiled) separately by the compiler into multiple object (.o or .obj) files. These object files can then be linked together to create a single executable file or library. However, this leads to multiple passes being performed on common header files, and with C++, multiple template instantiations of the same templates in different translation units.
The ''Single Compilation Unit'' technique uses pre-processor directives to "glue" different translation units together at compile time rather than at link time. This reduces the overall build time, due to eliminating the duplication, but increases the incremental build time (the time required after making a change to any single source file that is included in the Single Compilation Unit), due to requiring a full rebuild of the entire unit if any single input file changes. Therefore, this technique is appropriate for a set of infrequently modified source files with significant overlap (many or expensive common headers or templates), or source files that frequently require recompilation together, such as due to all including a common header or template that changes frequently.
Another disadvantage of SCU is that is serial, compiling all included source files in sequence in one process, and thus cannot be parallelized, as can be done in separate compilation (via distcc or similar programs). Thus SCU requires explicit partitioning (manual partitioning or "sharding" into multiple units) to parallelize compilation.
SCU also allows an optimizing compiler to perform interprocedural optimization without requiring link-time optimization, therefore allowing optimizations such as inlining, and helps avoiding implicit code bloat due to exceptions, side effects, and register allocation. These optimizations are often not possible in many compilers, due to independent compilation, where optimization happens separately in each translation unit during ''compilation,'' but the "dumb linker" simply links object files, without performing any optimizations itself, and thus interprocedural optimization between translation units is not possible.

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Single Compilation Unit」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.